In many situations, an output device such as a peripheral device or a printer is coupled to a document processing device, such as a personal computer or a workstation, that helps render an output job (such as a print job) that is output by the peripheral device (e.g. printed by the printing device). The document processing device generates one or more output jobs to be output by the peripheral device. The document processing device can execute different kinds of applications each of which can generate an output job that can be output by the peripheral device upon a demand for same by a user. Prior to initiation of the demand for output, the user can input data, edit the data, delete the data, etc. For example, the output jobs can be generated by one or more application programs (e.g. word processing programs, electronic mail programs, drawing programs, spreadsheet programs, desk top publishing programs, etc.) executed by the document processing device.
The output jobs may include any type of graphical elements or information supported by the peripheral device, including text, pictures, and so forth. The document processing device typically translates the output job into a language that is understood by the peripheral device. Where the peripheral device is a printer, the language can be Printer Control Language (PCL) or Postscript. A particular peripheral device may understand a single language, thereby requiring the processing device to translate the output job into that single language. This type of peripheral device requires an attached processing device to convert the raw output job data into a format (i.e., language) that is understood by the peripheral device.
Some peripheral devices are capable of processing output jobs in multiple languages. These peripheral devices are typically more complicated because they are required to identify, interpret and process output commands in several different languages. Although these peripheral devices are more complicated, they typically require an attached processing device to provide the output job and other output control information to the peripheral device. Another type of peripheral device contains its own output rendering engine that is capable of generating an output document from raw output job data. Although this type of peripheral device contains its own output rendering engine, it is typically coupled to a document processing device, such as a computer, to receive the raw output job data generated, for example, by an application running on the computer.
The document processing device, typically in home and office environments, consistently communicates to one or more of the same peripheral devices each time that an output job is to be output thereon. In other situations, such as in mobile computing, the document processing device must direct output to a peripheral device upon which output has not been previously directed by the document processing device. To do so, the document processing device must have specific software corresponding to the specific peripheral device upon which the output job is to be output. By way of example, a specific printer driver must be installed on a personal computer (PC) that corresponds to a specific printer so that a document can be printed on the printer by executing a printing function of a document processing application executing on the PC. In that there are a great variety of printers and corresponding printer drivers that can be encountered in mobile computing, it is not likely that a personal computer would have all printer drivers installed thereon so as to readily direct print jobs to all corresponding printers. In practice, a time consuming process is required in which a PC user must determine the type of printer that is to be printed to through a service provider. Then, the PC user must locate and install a compatible printer driver on the PC that corresponds to the printer that the PC user wants to print on. This process must be repeated for each different kind of printer that the PC user needs to use. Moreover, the service provider typically employs the manually intensive, laborious, and somewhat inaccurate accounting and/or billing procedure of counting printed pages and minutes of printer usage in order to assess costs and estimate usage of the printer by the PC user. While each printer driver can be modified to put user-specific billing and/or accounting information into each print data job that is output, this solution is rarely practical because there are too many printer drivers, many of which can not be properly modified for the user-specific data uses of accounting and/or billing. Additionally, a print server may require different types of user-specific billing and/or accounting information so as to be useful for printing from many different printer drivers. Typically, the nexus between the printer driver and the print server that stores the print queue for each printer is lacking in usefulness due to shallow flexibility in getting the user-specific data. It would be advantageous to advance compatibility and ease of use between a document processing device, printer drivers and respective peripheral devices upon which an output job is to be output while providing an ability to capture user-specific accounting and/or billing data. Consequently, there is a need for improved methods, programs, client devices, print servers, and systems that can provide such a capability.